﻿using Architecture.Domian;
using Architecture.Domian.Common;
using Architecture.Domian.DTO;
using Architecture.Domian.Entity;

namespace Architecture.Domain.Services.Interface
{
    // 单一模块服务接口
    public interface IRoleSerivce
    {
        Task<int> RoleInsert(RoleInfo role);
        Task<PageResult<RoleInfo>> GetRoleList(int size, int index);
        Task<int> LogicDelete(int roleId);
        Task<RoleInfo> GetRoleInfoByRoleId(int roleId);
        Task<int> RoleUpdate(RoleInfo role);
        Task<List<TreeList>> GetUserTreeListByDepartmentId(int departmentId);
        Task<int> UserRoleBatchInsert(int roleId, List<int> userIds);
        Task<List<UserRoleDTO>> GetUserListByRoleId(int roleId);
        Task<int> DeleteUserRoleInfo(int roleId, int userId);
    }
}
